home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 19 / Amiga Plus Leser CD 19.iso / Tools / Freeware / Swf_Player / Lib / text.h < prev   
Encoding:
C/C++ Source or Header  |  2002-11-17  |  2.0 KB  |  78 lines

  1. /////////////////////////////////////////////////////////////
  2. // Flash Plugin and Player
  3. // Copyright (C) 1998,1999 Olivier Debon
  4. // 
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU General Public License
  7. // as published by the Free Software Foundation; either version 2
  8. // of the License, or (at your option) any later version.
  9. // 
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14. // 
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, write to the Free Software
  17. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18. // 
  19. ///////////////////////////////////////////////////////////////
  20. #ifndef _TEXT_H_
  21. #define _TEXT_H_
  22.  
  23. struct Glyph {
  24.     long    index;
  25.     long    xAdvance;
  26.     long    code;    // Ascii code
  27. };
  28.  
  29. struct TextRecord {
  30.  
  31.     // Normal text record
  32.     Glyph        *glyphs;
  33.     long         nbGlyphs;
  34.  
  35.     // Control text record
  36.     TextFlags     flags;
  37.     SwfFont        *font;
  38.     long         fontHeight;
  39.     Color         color;
  40.     long         xOffset;
  41.     long         yOffset;
  42.  
  43.     TextRecord *next;
  44.  
  45.     TextRecord();
  46.     ~TextRecord();
  47.  
  48.     char        *getText();
  49. };
  50.  
  51. class Text : public Character {
  52.  
  53.     Rect         boundary;
  54.     Matrix         textMatrix;
  55.     TextRecord    *textRecords;    // List
  56.  
  57. public:
  58.     Text(long id);
  59.     ~Text();
  60.  
  61.     void         setTextBoundary(Rect rect);
  62.     void         setTextMatrix(Matrix m);
  63.     void         addTextRecord(TextRecord *tr);
  64.     int         execute(GraphicDevice *gd, Matrix *matrix, Cxform *cxform);
  65.     void         getRegion(GraphicDevice *gd, Matrix *matrix, 
  66.                                    void *id, ScanLineFunc scan_line_func);
  67.     int         doText(GraphicDevice *gd, Matrix *matrix, Cxform *cxform, ShapeAction action,
  68.                                 void *id, ScanLineFunc scan_line_func);
  69.     void         getBoundingBox(Rect *bb, DisplayListEntry *e);
  70.     TextRecord     *getTextRecords();
  71.  
  72. #ifdef DUMP
  73.     void     dump(BitStream *bs);
  74. #endif
  75. };
  76.  
  77. #endif /* _TEXT_H_ */
  78.